#pragma once


#include<iostream>
#include<vector>
#include<ctime>
typedef void (*task_t)();


void PrintLog()
{
    std::cout<<"我是一个打印日志的任务"<<std::endl;

}
void DownLoad()
{

    std::cout<<"我是一个下载的任务"<<std::endl;
}

void Upload()
{
    std::cout<<"我是一个上传的任务"<<std::endl;
}




class TaskManager
{
    private:
    std::vector<task_t> _task;

    public:
    TaskManager()
    {
        srand(time(nullptr));
    }

    ~TaskManager()
    {
    }

    int code()
    {
        return rand()%_task.size();
    }

    void Register(task_t t)
    {
        _task.push_back(t);
    }

    void Execute(int code)
    {
        if(code>=0 && code<_task.size())
        {
            _task[code]();
        }
    }




};